<?php
class Documentos extends MY_Controller {

	// Datos para pasar a las vistas
	var $pageTitle = 'Prevet :: Documentos';
	var $nombre_entidad = 'Documento';		// Cadena utilizada para los títulos de las páginas

	// Vistas manejadas por el controlador
	var $CARPETA_VISTAS = 'documentos/'; 	// Directorio donde están contenidas las vistas gestionadas por el controlador
	var $pagina_subir;
	var $pagina_descargar;

	public function __construct()
    {
    	parent::__construct();

    	$this->pagina_subir = $this->CARPETA_VISTAS . 'documentos_subir_view';
    	$this->pagina_descargar = $this->CARPETA_VISTAS . 'documentos_ver_todos_view';
	}
	
	
	public function subir($dataView = array())
	{
		$dataView['title'] = 'Subir nuevo ' . $this->nombre_entidad;
		
		parent::_loadViews($this->pagina_subir, $dataView);
	}

	public function cargar_documento()
	{
		$dataView['title'] = 'Subir ' . $this->nombre_entidad;
		$dataView['error'] = '';

		$config['upload_path'] = './documentos/';
		$config['allowed_types'] = 'gif|jpg|png|doc|docx|xls|xlsx|pdf|txt';
		
		$this->load->library('upload', $config);
	
		if (!$this->upload->do_upload())
		{
			$dataView['error'] = $this->upload->display_errors();
		}
		else $dataView['exito'] = "El archivo fue correctamente subido.";

		$this->subir($dataView);
	}

	public function ver_todos($dataView = array())
	{
		$dataView['title'] = 'Listado de ' . $this->nombre_entidad . 's';

		// Recorro los archivos en el servidor para ver los disponibles y listarlos. 
		// Se da la opción de descargar. Y si fuera el administrador, de eliminar
		$dataView['carpeta'] = './documentos/';

		if(!$this->template->usuarioActualEsPrestador()) $dataView['user_admin'] = TRUE;
		
		parent::_loadViews($this->pagina_descargar, $dataView);
	}

	public function eliminar($nombre_archivo)
	{
		$dataView['title'] = 'Eliminar ' . $this->nombre_entidad;
		$dataView['error'] = '';

		if($this->validarEliminacion($nombre_archivo))
		{
			$path_completo = './documentos/' . $nombre_archivo;
			if(file_exists($path_completo)) 
			{ 
				if(unlink($path_completo)) $dataView['exito'] = "El archivo fue borrado exitosamente."; 
				else $dataView['error'] = "Ocurrió un error al intentar eliminar el archivo.";
			}
			else $dataView['error'] = "El archivo que se intentó eliminar no existe.";

			$this->ver_todos($dataView);
		}
		else
		{
			$dataView['error'] = 'No se puede eliminar el documento seleccionado.';
			$dataView['path_volver'] = 'documentos/ver_todos';
			parent::_loadViews($this->template->getErrorMessageView(), $dataView);
		}
	}

	/* IMPORTANTE: este método es llamado desde la función heredada de MY_Controller, "borradoPosible" */
	protected function validarEliminacion($nombre_archivo)
	{
		// IMPLEMENTAR
		return TRUE;
	}
}